1. Field of the Invention
The present invention generally relates to the installation and use of plural expanded memory devices and Expanded Memory Manager (EMM) device drivers in an information handling system. More particularly, two or more EMM device drivers and respective additional memory hardware can be efficiently installed and operated concurrently such that memory can be cumulatively added, rather than replaced.
2. Description of Related Art
Typically, an Expanded Memory Manager (EMM) device driver is installed in conjunction with an additional memory card to provide additional system random access memory (RAM). When further RAM capacity is needed, conventional systems require replacement of the originally added additional memory with a new additional memory card having a capacity larger than the original. At this time the original device driver is typically replaced with a new device driver that controls the new additional memory. Generally, if a card is the same brand/type as the original, the EMM driver will support both the old and new memory cards.
For example, a typical computer system may have one megabyte of RAM on the system board and another megabyte on an adapter card, for a total of 2 megabytes. Normally, to upgrade this system the one megabyte card will be removed and a larger capacity expanded memory card installed, along with a new EMM device driver. The existing memory card is not used and its device driver is deleted, or ignored.
The majority of existing EMM device drivers do not support more than one type of card. If a user has an existing expanded memory card and purchases a new card, the existing and new cards will not work together (exceptions may be cards purchased from the same vendor). Therefore, the user is normally unable to use the old card for expanded memory purposes after installing the new card and its associated driver.
It is extremely difficult to produce an EMM device driver that will support multiple cards. The hardware specifications for vendor cards are usually not available, which precludes writing a device driver to support these cards. Also, many expanded memory cards are currently on the market, and creating a device driver to support all of them requires an enormous amount of time and resource, since the device driver code must be written to support each different card, and some mechanism must be devised to know when to call an appropriate hardware control routine. Creating a device driver to support multiple different memory cards may also negatively impact performance, since the device driver code must constantly check to determine which hardware device needs to be activated or deactivated. Further, from an economic stand point, it may be a poor use of resources to create software to support older hardware devices, just because they are on the market, when newer memory cards are presently being developed or sold.
A small number of computer component suppliers do have device drivers that will support more than a single expanded memory card. However, in these cases the EMM device drivers only support the expanded memory cards provided by that particular supplier. Furthermore, even EMM device drivers that are capable of supporting more than one card are unable to provide concurrent support to multiple cards.
U.S. Pat. Nos. 4,254,463; 4,037,215; and 4,414,627 all translate or convert addresses to provide memory mapping. U.S. Pat. No. 4,001,790 includes control units connected by a common bus that enable transfer information, including data and addresses to and from these units. U.S. Pat. No. 3,469,241 provides communication within a data processing system to transfer data from data storage units to the processing system. Symbolic addresses are translated into signal which represent actual addresses of a block of memory. U.S. Pat. No. 4,025,903 includes a bank of memory that appear to a CPU as a single large memory. Memory modules call be replaced with larger modules so long as the total memory remains below the maximum allowable memory. Calculators are included on the memory modules and interlocked so that address boundaries are calculated upon power up of the system. None of these references include any expanded memory control that is utilized by a subsequently installed memory controller to provide increased memory capacity by adding capacity of existing units.
Therefore, it can be seen that a need exists for a generic device driver that can concurrently control more than one expanded memory device and work in conjunction with the existing EMM drivers to allow existing memory to be added. Further, in addition to the system board, multiple memory expansion cards can be added to a computer system in the card adapter slots. Thus, a virtually unlimited amount of memory, that must be mapped into the one megabyte range recognizable by the disk operating system (DOS), can be added to a computer system.